Чтобы приложения могли быть сертифицированы для Windows 95, Windows 98 или Windows NT Workstation 4, они должны оставаться полностью функциональными после обновления операционной системы до Windows 2000 Professional.
В идеальном случае приложения должны использовать один набор двоичных файлов и не требовать дополнительной конфигурации в других операционных системах. Это наилучший способ гарантировать беспрепятственное обновление приложения.
Если Ваше приложение использует особенности какой-то конкретной операционной системы, компания Microsoft предлагает следующие варианты обеспечения беспрепятственной миграции приложения. Вы можете выбирать любой метод, единственным требованием является успешная миграция приложения:
При установке приложения в одной 32-разрядной операционной системе Microsoft Windows программа установки должна устанавливать все дополнительные двоичные файлы, которые могут понадобиться для работы программы в другой операционной системе. В идеале приложение должно изолировать платформозависимое поведение в динамически загружаемых модулях. Определение используемых компонентов должно выполняться при запуске. Например, если для приложения в операционной системе Windows 2000 необходимы модули DLL, отличные от используемых в системе Windows 98, приложение должно устанавливать и те, и другие модули и определять при запуске, какие модули нужно загружать и использовать. Для определения версии в момент запуска используйте GetVersionEx.
Если для приложения определено связанной с платформой поведение, приложение должно быть написано так, чтобы определять изменения в операционной системе (например, обновление системы после установки приложения). В случае изменения операционной системы приложение должно корректно функционировать в новой операционной системе. Например, если приложение использует .VXD в Windows 98 и службы Windows 2000, оно должно автоматически устанавливать эту службу после обновления Windows 98 до Windows 2000 Professional. Кроме того, в процессе удаления приложения должна автоматически проверяться версия ОС, и, если пользователь обновил ОС с момента первоначальной установки приложения, должна вызываться корректная процедура удаления.
Для приложений Windows 9x, в которых реализовано специфическое поведение Windows 9x, можно написать библиотеку DLL для миграции, обеспечивающую корректную работу приложения после обновления Windows 95 или Windows 98 до Windows 2000. Например, если приложение использует .VXD в Windows 9x, библиотека DLL для миграции может использоваться для реализации эквивалентной функциональности в Windows 2000 как служба. Программа установки Windows 2000 Setup вызывает библиотеки DLL для миграции для выполнения необходимой миграции приложения, обеспечивающей его корректную работу в Win2000.
Обратите внимание, что модули DLL могут применяться только в процессе обновления системы Windows 9x. После обновления эти модули DLL применяться не должны. Неукоснительным требованием к производителям является общедоступность и своевременность модулей DLL. Подробнее о написании модулей DLL для миграции см. в Migration Extension Interface в Microsoft Platform SDK.
Поместите файл Migrate.dll, а также цифровой сертификат компании и другие файлы на устройство распространения, на Web -сервер, с которого пользователи устанавливают приложение или на жесткий диск пользователя. Если файлы устанавливаются на жесткий диск, необходимо записать в реестр Windows 95 или Windows 98 следующие строки:
HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\Migration DLLs Параметр: <строка ИДпродукта > Значение: <путь к файлу MIGRATE.DLL>
Замечание: ИД продукта должен совпадать со строкой, возвращаемой функцией QueryVersion, описанной в Platform SDK. Этот процесс обеспечит «прозрачность» миграции для пользователя.
Можно воспользоваться Migration DLL AppWizard. Migration DLL AppWizard – это инструмент, который создает каркас DLL для миграции с поддержкой локализации. Все подробности реализации можно найти по адресу:
http://msdn.microsoft.com/developer/windows2000/migration/default.asp
Обратите внимание, что компания Microsoft не обеспечивает техническую поддержку для Migration DLL AppWizard.